/*
 * MP_cryptlib.h
 *
 *  Created on: Nov 13, 2014
 *      Author: marc
 */

namespace mp_crypt_h {
struct crypt_type_struct {
	int MP_CRYPTTYPE_UNKNOWN;
	int MP_CRYPTTYPE_NONE;
	int MP_CRYPTTYPE_REVERSE;
	int MP_CRYPTTYPE_BIT_ROT_R;
	int MP_CRYPTTYPE_BIT_ROT_L;
	int MP_CRYPTTYPE_DESLITE;
} mp_crypt_types {0,2,4,8,16,32};
}

#ifndef MP_CRYPTLIB_H_
#define MP_CRYPTLIB_H_

#ifndef MP_CRYPTLIB_INTERNAL_DECLARATION
extern int mp_getVersion(char **);
extern int mp_getEncrypt(char *);
extern int mp_setEncryptType(int);
extern int mp_isMemberIntStructure(int , int *, int);

#else
//avoide name mangling with directive 'C'
#ifdef __cplusplus
extern "C" {
#endif

int mp_getVersion(char **);
int mp_getEncrypt(char *);
int mp_setEncryptType(int);
int mp_isMemberIntStructure(int , int *, int);

#ifdef __cplusplus
}
#endif
#endif /*MP_CRYPTLIB_INTERNAL_DECLARATION*/


#endif /* MP_CRYPTLIB_H_ */

